Integrated circuit devices can have circuits implemented in different ways. For example, an application specific integrated circuit (ASIC) includes circuits which are hardened, or implemented as fixed circuits. The hard blocks of an ASIC may receive different signals to implement different functions, but the circuit elements making up the hard blocks are not reconfigurable. In contrast, Programmable Logic Devices (PLDs) comprise programmable resources that are reconfigurable to implement different functions. Some integrated circuits may comprise both hard blocks and programmable resources that are reconfigurable to implement different functions.
However, using programmable resources to provide connections between hard blocks has several disadvantages. For example, the use of programmable resources to provide connections between hard blocks may have lower performance due to the limitations of the programmable resources, such as programmable interconnect elements. The use of programmable resources may also have high latency, high power, and significant use of silicon area. Such arrangements may also require a more complex use model for an end customer of the integrated circuit device.
Accordingly, there is a need for circuits for and methods of implementing a programmable connector in an integrated circuit device.